#include <iostream>
using namespace std;
#include <map>

template<class T1, class T2>
class A
{
public:
	A()
	{}

	template<class N1, class N2>
	A(const A<N1, N2>& a)
		:_a(a._a)
		, _b(a._b)
	{}

	T1 _a;
	T2 _b;
};

void func(const A<double, double>& a)
{
	cout << "void func(A<const string, string> a)" << endl;
}

int main()
{
	A<int, int> a1;
	func(a1);

	return 0;
}


//void func(const int& b)
//{
//	cout << "void func(const int& b)" << endl;
//}
//
//int main()
//{
//	double a = 0;
//	func(a);
//	return 0;
//}



//int main()
//{
//	map<string, string> mp;
//
//	mp.insert(pair<string, string>("hello", "world"));
//	return 0;
//}


